﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Wizard
{
    using Wizard.Runtime;

    public interface IStatement
    {
        void OnRun(IStatementArgs args, RunArgs runArgs);
        void OnUndo(IStatementArgs args, UndoArgs undoArgs);

        void OnSubComplete(IStatementArgs args, SubCompleteArgs runArgs);
        void OnUndone(IStatementArgs args, UndoneArgs undoneArgs);

        void OnHibernate(IStatementArgs args, HibernateArgs requireRestoreForChildren);
        void OnRestore(IStatementArgs args, RunArgs runArgs);
        void OnDiscard(IStatementArgs args); 
    }
}
